/*
深度遍历--二叉树
连接：https://leetcode.cn/problems/evaluate-boolean-binary-tree/description/
题目：2331. 计算布尔二叉树的值

简介：递归解题


递归函数流程：
1. 当前问题规模为 n=1 时，即叶⼦节点，直接返回当前节点值；
2. 递归求得左右⼦节点的值；
3. 通过判断当前节点的逻辑运算符，计算左右⼦节点值运算得出的结果

*/

class Solution {
public:
    bool evaluateTree(TreeNode* root) {
        if(root->left==nullptr && root->right==nullptr)
        {
            return root->val==0?false:true;
        }
        bool left = evaluateTree(root->left);
        bool right = evaluateTree(root->right);
        if(root->val ==2)
            return left | right;
        else return left && right;
    }
};

